package cn.iocoder.yudao.module.contract.controller.admin.frameworkAgreement.vo;

import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import cn.iocoder.yudao.module.contract.utils.StringUtils;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.fastjson.JSONObject;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

@Schema(description = "管理后台 - 框架协议 Response VO")
@Data
@ExcelIgnoreUnannotated
public class FrameworkAgreementExportVO {
    /**
     * 协议模板
     */
    @Schema(description = "协议模板")
    @ExcelProperty("协议模板")
    private String contractTemplateName;
    /**
     * 合同编号
     */
    @Schema(description = "合同编号")
    @ExcelProperty("合同编号")
    private String contractNo;
    /**
     * 销售部门
     */
    @Schema(description = "销售部门")
    @ExcelProperty(value = "销售部门")
    private String salesDept;
    /**
     * 公司名称
     */
    @Schema(description = "公司名称")
    @ExcelProperty("公司名称")
    private String companyNames;
    /**
     * 客户名称
     */
    @Schema(description = "客户名称", example = "1")
    @ExcelProperty("客户名称")
    private String clientName;
    /**
     * 客户编码
     */
    @Schema(description = "客户编码", example = "1")
    @ExcelProperty("客户编码")
    private String clientCode;
    /**
     * 客户联系人
     */
    @Schema(description = "客户联系人", example = "1")
    @ExcelProperty("客户联系人")
    private String receiverName;
    /**
     * 联系人职位
     */
    @Schema(description = "联系人职位", example = "1")
    @ExcelProperty("联系人职位")
    private String receiverDuty;
    /**
     * 联系人电话
     */
    @Schema(description = "联系人电话", example = "1")
    @ExcelProperty("联系人电话")
    private String receiverPhone;
    /**
     * 公司人员姓名
     */
    @Schema(description = "公司人员姓名")
    @ExcelProperty("公司人员姓名")
    private String companyPersonName;
    /**
     * 公司人员职务
     */
    @Schema(description = "公司人员职务")
    @ExcelProperty("公司人员职务")
    private String companyPersonJob;;
    /**
     * 公司人员联系方式
     */
    @Schema(description = "公司人员联系方式")
    @ExcelProperty("公司人员联系方式")
    private String companyPersonContactWay;
    /**
     * 协议有效开始日期
     */
    @Schema(description = "协议有效开始日期")
    @ExcelProperty("协议有效开始日期")
    private String agreementStartDate;
    /**
     * 协议有效结束日期
     */
    @Schema(description = "协议有效结束日期")
    @ExcelProperty("协议有效结束日期")
    private String agreementEndDate;
//    /**
//     * 协定账期月份
//     */
//    @Schema(description = "协定账期月份")
//    @ExcelProperty("协定账期月份")
//    private String accountPeriodMonth;
//    /**
//     * 结款月份
//     */
//    @Schema(description = "结款月份")
//    @ExcelProperty("结款月份")
//    private String paymentMonth;
    /**
     * 产品组
     */
    @Schema(description = "产品组")
    @ExcelProperty("产品组")
    private String productGroup;
    /**
     * 下载次数
     */
    @Schema(description = "下载次数")
    @ExcelProperty("下载次数")
    private String downloadCount;
    /**
     * 打印次数
     */
    @Schema(description = "打印次数")
    @ExcelProperty("打印次数")
    private String printCount;
    /**
     * 原件是否上传
     */
    @Schema(description = "原件是否上传")
    @ExcelProperty("原件是否上传")
    private String fileIds;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    @ColumnWidth(20)
    private LocalDateTime createTime;

    /**
     * 客户信息-对象json字符串
     */
    private String clientInfo;

    public String getFileIds() {
        if(StringUtils.isBlank(fileIds)){
            return "否";
        }else{
            return "是";
        }
    }

    public String getReceiverName(){
        if(StringUtils.isNotBlank(clientInfo)){
            JSONObject clinet = JSONObject.parseObject(clientInfo);
            if(clinet!=null && clinet.get("ZZJSRXM")!=null){
                return clinet.getString("ZZJSRXM");
            }
        }
        return "";
    }

    public String getReceiverDuty(){
        if(StringUtils.isNotBlank(clientInfo)){
            JSONObject clinet = JSONObject.parseObject(clientInfo);
            if(clinet!=null && clinet.get("ZZJSRZW")!=null){
                return clinet.getString("ZZJSRZW");
            }
        }
        return "";
    }

    public String getReceiverPhone(){
        if(StringUtils.isNotBlank(clientInfo)){
            JSONObject clinet = JSONObject.parseObject(clientInfo);
            if(clinet!=null && clinet.get("ZZJSRDH")!=null){
                return clinet.getString("ZZJSRDH");
            }
        }
        return "";
    }
}